www.gusucode.com > XerCMS 携云PHP企业建站程序 v2015PHP源码程序 > XerCMS 携云PHP企业建站程序 v2015/XerCMS_v20150724/XerCMS_v20150724/XerCMS/Modules/forum/libs/forum.php

    <?php
/**
 * @name     XERCMS
 * @author   Arno <XerCMS@163.com> [QQ:1328013]
 * @version  1.0.0
 * @link     http://www.XerCMS.com 
 */

!defined('XERCMS') && exit('Access Denied');

class forum
{
     var $bid = 0;
     var $class = array('edit'=>array(7,6),'view'=>array(10,11),'publish'=>array(9,8),'rely'=>array(5,4),'down'=>array(3,2));
     
     function loadBorad($bid) {
          if(empty($bid)) {
               showtips('noboard',X::$G['urlpath'].'/?m=forum');
          }
          X::$G['board'] = ini('forum/board/'.$bid);
          if(empty(X::$G['board'])) {
               showtips('noboard',X::$G['urlpath'].'?m=forum');
          }     
     }

     function creditRule($category = 'edit',$tid = 0) {//print_r(X::$G['credits']);exit;
          if(isset(X::$G['board']['credit'][$category]) && is_array(X::$G['board']['credit'][$category])) {              
               list($id,$val) = each(X::$G['board']['credit'][$category]);
               //print_r(X::$G['board']['credit']);exit;
               //if(isset(X::$G['credits']['credit'.$id]['val'])) {
                    //if(is_int(X::$G['credits']['credit'.$id]['val'])) {
                         if(isset(X::$G['credits'][$id]['val'])) {
                              
                              if($tid && in_array($category,array('view','rely'))) {   
                                   $catId = array('view'=>2,'rely'=>3);                              
                                   $log = DB::result('SELECT time FROM xercms_log_deduct WHERE id = '.$tid.' AND cat = '.$catId[$category].' AND uid = '.X::$G['uid']);
                                   if($log) {
                                        return;
                                   } else {
                                        DB::insert('xercms_log_deduct',array('id'=>$tid,'cat'=>$catId[$category],'uid'=>X::$G['uid'],'time'=>X::$G['time']));
                                   }
                              }
                              if($val >= 0) {
                                   if($val) {
                                        credits()->setIdStr($this->class[$category][0]);                                      
                                        credits()->add($id,$val,$this->class[$category][0]);
                                   }
                                   return;
                              } else if($val < 0 && (X::$G['credits'][$id]['val'] + $val) >= 0) {
                                   credits()->setIdStr($this->class[$category][1]); 
                                   credits()->add($id,$val,$this->class[$category][1]);
                                   return;
                              }                             
                         } else {
                              if(empty($val)) {
                                   return;
                              }
                         }                                          
                    //}
               //}
          }
          showtips('not_enough_credit',X::$G['urlpath'].'?m=forum');
     }
     
     function checkAccess($category = 'view') {
          X::$G['admin'] = 0;               
          if(in_array(X::$G['group'],X::$G['admingroup'])) {
               X::$G['admin']++;                     
          }
          if(in_array(X::$G['uid'],X::$G['board']['admin'])) {
               X::$G['admin'] += 2;                     
          }
          if(in_array(X::$G['uid'],X::$G['superadmin'])) {
               X::$G['admin'] += 5;                     
          }   
          if(X::$G['admin'] < 2 && !in_array(X::$G['group'],X::$G['board']['access'][$category])) {
               if(X::$G['uid']) {
                    showtips('noaccess',X::$G['urlpath'].'?m=forum');
               } else showtips('noaccess',X::$G['urlpath'].'?m=member&a=register');
          }         
     }
     
     function checkEditAccess() {
          $this->checkAccess('edit');
     }
     
     function checkRelyAccess() {
          $this->checkAccess('rely');
     }
     
     function checkViewAccess() {
          $this->checkAccess('view');
     }
     
     function checkPubAccess() {
          $this->checkAccess('publish');
     } 
}
?>